﻿#define _CRT_SECURE_NO_WARNINGS


#include <stdio.h>

//分支和循环

//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	if (a > b)
//		printf("hehe~\n");
//	else
//		printf("haha~\n");
//
//	return 0;
//}



//int main()
//{
//	int a = (3 == 5);//为假 返回0
//	int b = (5 == 5);//为假 返回1
//	printf("%d\n", a);
//	printf("%d\n", b);
//
//	return 0;
//}


////当一个变量和一个常量比较相等的时候，应该怎么写呢？
////建议将常量放在等号==的左边
//int main()
//{
//	int a = 5;
//	if(5 == a)
//	{
//		printf("hehe\n");
//	}
//}

////多个比较运算符不宜连用，可以用&&连接，表示并且
//int main()
//{
//	int a = 3;
//	int b = 7;
//	int c = 4;
//	if (a < b  <c )
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}


////我们输⼊⼀个年龄，如果年龄在18岁~36岁之间，我们输出⻘年
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	//if (18 <= age <= 36)
//	if (age >= 18 && age <= 36)
//	{
//		printf("⻘年\n");
//
//	}
//	return 0;
//}


////三目操作符
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//
//	/*if (a > 5)
//		b = 3;
//	else
//		b = -3;*/
//
//	//如果a>5,b=3否则b=-3
//	b = (a > 5 ? 3 : -3);
//
//	printf("%d\n", b);
//
//	return 0;
//}



////使⽤条件表达式实现找两个数中较大值
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int m = a > b ? a : b;
//	printf("%d\n", m);
//
//	return 0;
//}



//逻辑操作符：&&  ||  ！

////!：逻辑取反运算符（改变单个表达式的真假）。
//int main()
//{
//	int flag = 5;
//	scanf("%d", &flag);
//	if (!flag)//flag为假要做什么是
//	{
//		printf("do something\n");
//	}
//	return 0;
//}




////&& ：逻辑与运算符，就是并且的意思（两侧的表达式都为真，则为真，否则为假）。
//int main()
//{
//	int month = 0;
//	scanf("%d", &month);
//	if (month >= 3 && month <= 5)
//	{
//		printf("春季\n");
//	}
//	
//	return 0;
//}



////|| ：逻辑或运算符，就是或者的意思（两侧⾄少有⼀个表达式为真，则为真，否则为假）。
//int main()
//{
//	int month = 0;
//	scanf("%d", &month);
//	if (month == 12 || month == 1 || month == 2)
//	{
//		printf("冬季\n");
//	}
//	else
//		printf("不是冬季\n");
//}




//练习：闰年的判断
//输⼊⼀个年份year，判断year是否是闰年
//闰年判断的规则：
//1. 能被4整除并且不能被100整除是闰年
//2. 能被400整除是闰年
////方法一
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if (((year % 4 == 0 )|| (year % 100 != 0)) && (year % 400 == 0))
//	{
//		printf("%d 是闰年\n", year);
//	}
//
//	return 0;
//}


////方法二 
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if (year % 4 == 0 && year % 100 != 0)
//		printf("%d是闰年\n", year);
//	else if (year % 400 == 0)
//		printf("%d是闰年\n", year);
//	else
//		printf("%d不是闰年\n", year);
//
//	return 0;
//}



////短路
////C语言逻辑运算符还有⼀个特点，它总是先对左侧的表达式求值，再对右边的表达式求值，这个顺序是保证的。
////如果左边的表达式满⾜逻辑运算符的条件，就不再对右边的表达式求值。这种情况称为“短路”。
//int main()
//{
//	int i = 0, a = 1, b = 2, c = 3, d = 4;
//
//	//a=0时
//	//i = (a++ && ++b && d++);//a++为后置++，先使用后++,将a=0的值赋值给i，0为假，后面就不用算了，所以是i=0 a=1
//
//	//a=1时
//	//i = (a++ && ++b && d++);
//
//	i = (a++ || ++b || d++);//a为真，后面不用算
//
//	//i = a++||++b||d++;
//	printf("i = %d\n a = %d\n b = %d\n c = %d\n d = %d\n", a, b, c, d);//
//
//	return 0;
//
//}



//switch 语句
//除了 if 语句外，C语⾔还提供了 switch 语句来实现分⽀结构。
//switch 语句是⼀种特殊形式的 if...else 结构，⽤于判断条件有多个结果的情况。
//它把多重的 else if 改成更易⽤、可读性更好的形式。
//练习：输⼊任意⼀个整数值，计算除3之后的余数
//0 1 2
//int main()
//{
//	int i = 0;
//	scanf("%d", &i);
//	if (i % 3 == 0)
//		printf("%d 的余数是0\n");
//	else if (i % 3 == 1)
//		printf("%d 的余数是1\n");
//	else
//		printf("%d 的余数是2\n");
//
//	return 0;
//}



//int main()
//{
//	int n = 0;//可以用char类型，因为字符类型也是归类到整型家族，因为字符的本质是ASCII
//	scanf("%d", &n);
//	switch (n % 3)//switch后的expression必须是整型表达式
//	{
//	case 0://case后的值，必须是整型常量表达式
//		printf("%d 的余数是0\n", n);
//		break;
//	case 1:
//		printf("%d 的余数是1\n", n);
//		break;
//	case 2:
//		printf("%d 的余数是2\n", n);
//		break;
//	}
//
//	return 0;
//}


//输⼊⼀个1~7的数字，打印对应的星期⼏
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//		printf("今天是星期一\n");
//		break;
//	case 2:
//		printf("今天是星期二\n");
//		break;
//	case 3:
//		printf("今天是星期三\n");
//		break;
//	case 4:
//		printf("今天是星期四\n");
//		break;
//	case 5:
//		printf("今天是星期五\n");
//		break;
//	case 6:
//		printf("今天是星期六\n");
//		break;
//	case 7:
//		printf("今天是星期天\n");
//		break;
//	}
//
//	return 0;
//}


//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("今天是工作日\n");
//		break;
//	case 6:
//	case 7:
//		printf("今天是休息日！！！！\n");
//		break;
//		//如果case不能匹配
//	default:
//		printf("输入错误，输入的值应该在1-7的范围\n");
//		break;
//	}
//	return 0;
//}



//while循环
//int main()
//{
//	int n = 10;
//	while (n > 0)
//		printf("hehe~\n");
//	return 0;
//}


////练习：在屏幕上打印1~10的值
//int main()
//{
//	int i = 1;
//	while (i <=10)
//	{
//		printf("%d ", i);
//		i++;
//	}
//	return 0;
//}



//输入⼀个正的整数，逆序打印这个整数的每⼀位
//例如：
//输入：1234，输出：4 3 2 1
//输入：521，输出：1 2 5
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//
//	while (n)
//	{
//		printf("%d ", n % 10);
//		n = n / 10;
//	}
//
//	return 0;
//}


//for循环
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//
//	return 0;
//}


////计算1~100之间3的倍数的数字之和
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i < 100; i++)
//	{
//		if (i % 3 == 0)
//			sum += i;	
//	}
//	printf("%d ", sum);
//
//	return 0;
//}


////打印出1~100之间3的倍数的数字
//int main()
//{
//	int i = 0;
//	for (i = 1; i < 100; i++)
//	{
//		if (i % 3 == 0)
//			printf("%d ", i);
//	}
//	return 0;
//}



//do while循环
//while 和 for 这两种循环都是先判断，条件如果满⾜就进⼊循环，执⾏循环语句，如果不满⾜就跳出循环；
//⽽ do while 循环则是先直接进⼊循环体，执⾏循环语句，然后再执⾏ while 后的判断表达式，
//表达式为真，就会进⾏下⼀次，表达式为假，则不再继续循环。

//int main()
//{
//	int i = 1;
//	do
//	{
//		printf("%d ", i);
//		i = i + 1;
//	} while (i <= 10);
//
//	return 0;
//
//}


//输⼊⼀个正整数，计算这个整数是⼏位数？
//例如：
//输⼊：1234 输出：4
//输⼊：12 输出：2
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	do
//	{
//		count++;
//		n = n / 10;
//	} while (n);
//	printf("%d", count);
//
//	return 0;
//}


//break:作⽤是⽤于永久的终⽌循环，只要 break 被执⾏，直接就会跳出循环，继续往后执⾏。
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);
//		i++;
//	}
//
//	return 0;
//}


//continue:在循环中的作⽤就是跳过本次循环中 continue 后边的代码，继续进⾏下⼀次循环的判断。
//continue 的作⽤是跳过本次循环中 continue 后边的代码，在 for 循环和 while 循环中有所差异的
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		printf("%d ", i);
//		i++;
//	}
//
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		i++;
//		if (i == 5)
//			continue;
//		printf("%d ", i);
//		
//	}
//
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;
//
//		printf("%d ", i);
//	}
//
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;
//
//		printf("%d ", i);
//	}
//
//	return 0;
//}


//int main()
//{
//	int i = 1;
//	do
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//
//	return 0;
//}


int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i++;
	} while (i <= 10);

	return 0;
}